<template>
  <el-row type="flex" justify="space-between" style="width: 100%;">
    <el-col>
      <!-- 根据渲染的内容，动态设置样式 -->
      <span :style="{fontWeight: isCompany?'700':''}">{{ treeNode.name }}</span>
    </el-col>
    <el-col :span="4">
      <el-row type="flex" justify="end">
        <el-col>
          <span>{{ treeNode.manager }}</span>
        </el-col>
        <el-col>
          <el-dropdown>
            <span>操作
              <i class="el-icon-arrow-down" />
            </span>
            <!-- 下拉内容 -->
            <el-dropdown-menu slot="dropdown">
              <!--
                自定义组件默认情况下是不允许绑定原生的事件的
                需求：我就想给组件绑定原生的click如何实现 ？
                答：vue提供了一个修饰符给我们，使得我们可以
                直接在组件上绑定原生事件
                这个修饰符就是 .native
               -->
              <el-dropdown-item
                v-show="checkPermission('add-department')"
                @click.native="addFn"
              >添加子部门</el-dropdown-item>
              <el-dropdown-item
                v-show="checkPermission('edit-department')"
                v-if="isCompany===false"
                @click.native="editFn"
              >编辑部门</el-dropdown-item>
              <el-dropdown-item
                v-show="checkPermission('del-department')"
                v-if="isCompany===false"
                @click.native="delFn"
              >删除部门</el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
        </el-col>
      </el-row>
    </el-col>
  </el-row>
</template>

<script>
export default {
  props: {
    treeNode: {
      type: Object, // 定义treeNode的类型
      required: true // 必传
    },
    isCompany: { // 是否渲染为公司名称, true表示渲染公司名
      type: Boolean,
      default: false
    }
  },
  methods: {
    // 新增部门
    addFn() {
      console.log(45)
      // 子传父，通知父组件 需要显示新增部门的弹窗
      this.$emit('addEvent', this.treeNode)
    },
    // 删除
    delFn() {
      this.$emit('delEvent', this.treeNode.id)
    },
    // 编辑
    editFn() {
      this.$emit('editEvent', this.treeNode)
    }
  }
}
</script>

<style scoped>

</style>
